Voice over Internet Protocol (VoIP) involves the routing of voice conversations over the internet using a telephone employing VoIP technology, e.g. a VoIP protocol. VoIP provides a secure approach to communications by making use of encryption and authentication protocols. Most of the difficulties of creating a secure communication over traditional telephone lines, such as digital transmission, are already in place with VoIP. VoIP allows use of regular telephone networks anywhere through any internet service provider, and avoids long distance charges. VoIP facilitates reduction of telephony costs by enabling communication over data network cables. Although VoIP requires those using it to have a network and be connected to the internet, this is rarely a problem in today's commercial businesses. Skype and Vonage are examples of VoIP being utilized world wide. Voice-over-IP systems carry telephony signals as digital audio, typically reduced in data rate using speech data compression techniques, encapsulated in a data-packet stream over IP.
VoIP networks are now increasingly used as alternatives to the Public-Switched Telephone Network (PSTN). VoIP allows companies to extend communication services to all employees, whether they are in an office headquarters, branch office, working at home, or even mobile. Because they are primarily software based, VoIP systems are highly scalable. A typical VoIP system, for example, as provided by ShoreTel, the assignee of this invention, is capable of providing telephony services from one user to large numbers of users, e.g., 10,000 users. VoIP is particularly advantageous for fast growing companies, or companies where fast response to changes in telephony demand is important.
One benefit of being software based is that VoIP systems can include, at no additional charge, features for which communications companies using the public switched telephone network normally charge extra. For example, VoIP can provide three-way calling, call forwarding, automatic redial, caller ID, etc. Some VoIP providers offer a “soft” client which allows a user to control calls from a desktop computer.
One feature often desired in VoIP systems is the handling of account codes. Account codes allow a system administrator to restrict calls, or account for calls, to outbound external numbers. In some systems, account codes are referred to as authorization codes, accounting codes, billing codes, or other similar terminology. In some systems the accounting code, when not used as an authorization code, can be added during or after the call. This is achieved by having the user of the telephone enter a valid account code at the time a call is made. Entry of an account code to make a call, for example an international call, can be required or optional, depending upon settings made by the system administrator when the telephone system is configured.
Whether the account code is required or optional, after the information is collected it can be added to records of the calls made to enable the making of reports identifying the purpose, duration, client name, or other information. This compiled data may be useful for accounting purposes, such as allocating employees time to various different projects. It also enables reports to be generated, identifying which account was worked on by which user at any particular time or date.
In typical prior art systems, for example, as implemented by the assignee of this invention, the account code service runs only on a headquarters server. All outbound calls for users which are in a user group invoking account codes are then directed to the headquarters server, regardless of the site where the user originates the call. After the headquarters server extracts the account code information, it forwards the call on to the target destination.
Handling the account code feature in this manner is undesirable. It results in directing a large amount of telephone traffic across the network to the headquarters server, placing extra load on that server. Furthermore, in the event of a server or network failure, users are either unable to make calls requiring account codes, or those codes are not saved and provided to the proper units for further data management.
Accordingly, there is a general need for an improved method and apparatus for handling account codes when calls are processed using a VoIP system.